image.png

image.png

Where are we now and where should we be?¶

  • Achievements:
    • Functional, online, publicly acDevelopment/Stablecessible staging and production platforms
      • Development/Stable
      • staging/Unstable
    • Focus on core features and capabilities - proiratised rapid implementation over deeper features and details
    • Eco System Ontology based on EMMO and open EU materials modelling marketplaces
    • 9 B2B show cases - offline execution

Now..¶

  • Build on the existing developments within and outside DOME 4.0 and add depth!
  • we can focus on deeper features to enable efficient, robust feature set
  • enabling integration with semantic EU data landscape and
  • provide better support for DOME 4.0 users

This means mainly focusing on the back end¶

  • Improved Performance and Speed
  • Improved Semantic Interoperability --> cosolidation of ontologies
  • Improved Data Management and Integration --> use of semantic data structures internally
  • Flexibillity in Front End Design --> better visualisation and user experience
  • Advanced Features --> e.g. Sparql interfaces

Outline¶

  • Overview of the state of the platform - the front and backends
  • Overview of the ontology Eco system consolidation (technical mainly)
  • Integration of third party standard ontology similar to that used by the EU data infrastructure
  • Overview of further deeper development from SimPhony to Ontology-Manager, OntoVis, SigraDB stack
  • Demo: Synthetic case study of the backend
  • Roadmap for the next period --> integration and release towards EOP

Outline of the Demo: Synthetic case study of the backend¶

  • Load ontology eco system
  • Create fully semantic data sets (Tier1: compliant with DOME 4.0 data Set Ontology)
  • Store in a Graph Enabled Backend (GDB)
  • Demonstrate Visualisation and SparQL query
  • Demonstrate provenance basics (mostly in the review meeting)
  • Integration with EuroSciVoc as Semantic Keywords!
  • Linking with External Data provider (and creator): Materials Project (synthetic case)
Internal Note:¶

This work is largely based on D3.6, it extends SimPhoNy-Future into a new Package developed specifcally with DOME requirements in mind: Ontology-Manager, OntoVIS and sigraDB.

DomeDataSet from D3.6 is in /Users/adham/dev/dome/Ontology-matters/domeo/domeo.ttl

from ontology_manager.ontology_utils import OntologyManager
from rdflib import Graph, URIRef, Namespace, Literal, BNode, collection
from rdflib.namespace import SKOS, RDF, RDFS, OWL
from datetime import date
from rdflib.extras.external_graph_libs import rdflib_to_networkx_multidigraph, rdflib_to_graphtool
import networkx as nx
import matplotlib.pyplot as plt
from ontodot.ontodot import vis, random_date_time, auto_bind_namespaces, printH, generate_uuid, generate_random_materialproject_id
from ontodot.ontodot import OntoVis
from types import SimpleNamespace
import os, random
dome=SimpleNamespace() # This is equivalent to a *SimPhoNy lightweight session*

Load the DOME 4.0 ecosystem CORE ontology¶

dome.g=Graph(bind_namespaces="rdflib")
dome.ns=Namespace('https://dome40.eu/semantics/dome4.0_core#')
dome.path = "/Users/adham/dev/ontology/dome/Ontology-matters/"
dome.file='dome4.0_core_tbox.ttl'

Store the Ontology into a Graph DB¶

Load the Materials Informatics Ontology (MIO)¶

  • MIO is a new top level ontology compliant with EMMO but is optimised for practical applications
  • EMMO requires heavy use of reasoners as it is built on logic,
  • This poses heavy constraints on applications, as one has to deal with complex structures composite complex classes requiring intensive inference in real time
  • MIO is simple and focuses on practical applications, especially for software engineering perspective
mio=Graph(bind_namespaces="rdflib")
mio.parse("/Users/adham/dev/ontology/ontology_manager/MIO/mio/mio.ttl")
<Graph identifier=N26192c28f845414c90332444d3926968 (<class 'rdflib.graph.Graph'>)>
vis(mio)
No description has been provided for this image
dome.g.parse(os.path.join(dome.path, dome.file))
# we could add it to mio_manager manually actually, then use it as we want, 
<Graph identifier=Nc188d22ff4d44ff0a84fedb07d48e497 (<class 'rdflib.graph.Graph'>)>
gg=dome.g + mio
vis(gg)
No description has been provided for this image

What did we consolidate?¶

  • we focused on transcribing the needed concepts from EMMO, VIMMP, etc to the needs of the DOME 4.0 Eco system
  • All Data in DOME 4.0 backend are Ontology classes
  • Allows seamless integration of new ontologies
  • We will show the case study for the EuSciVoc!

Advanced Visualisation and integration of ontology¶

We rely on RDFLIB like many other open source programs for RDF management, but augment it with additional tools both in house and external!

  • OntoVis, SimPhoNy, Ontology Manager, SigraDB, OMI, are in house
# Using the power of RDFLIB it is easy to combine ontology: 
gc=dome.g+mio
# Using the new OntoVis: Visualisation and inspection is easy (including also animated fancy demo..) 
ovis = OntoVis(gc)
vis(ovis.zoom_in(URIRef("http://dome40.eu/semantics/dome4.0_core#data_set"), 2))
No description has been provided for this image

Integration of numerous Ontology¶

(an eco system of data needs an eco system of ontology!)

# these are bindings (RDFLIB) 
binds="""
@prefix domeES: <http://dome40.eu/semantics/dome4.0_core#> .
@prefix mio: <http://www.ddmd.io/mio/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix euroscivoc: <http://data.europa.eu/8mn/euroscivoc/> .
@prefix evmpo: <https://emmc.eu/semantics/evmpo/evmpo.ttl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix http-meth: <http://www.w3.org/2011/http-methods#> .
@prefix msm: <http://iserve.kmi.open.ac.uk/ns/msm#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
"""

We create SimPhoNy-CUDS¶

  • CUDS: Common Universal/Unified Data Structures!
  • Check the MIO and domeES ontology!
cuds=SimpleNamespace() # we use now simple version, no checks for the demo
cuds.g=Graph()
cuds_collection=set()
num_data_sets=10 # the number of synthetic data sets we want to create
domeES=nsbinds['domeES']
mioNS=nsbinds['mio']

Connecting a Value property to an entity more efficiently¶

We avoid multiplication of relation entities and concept entities with the cost of increased (semantic) verbosity.¶

(more details later)

Can ease the need for complex reasoners and makes SPARQL easy to write.¶

e.g. instead of saying

    `a data set` hasDate `2024-03-19 13:43:32.991488'(Literal)` 
    
    we say: 
    
    `a data set` hasPart 'a Date` (which is a class instance) 
    'a Date`  hasValue `2024-03-19 13:43:32.991488'(Literal)` 

    here `a somethin` is an instance, i.e., a particular. 

    Tech details:
    
    We can make an utility "macro" that takes: 

    1. a class instance (s) 
    2. a class instance relating to a property (p) (Date, Color, etc.0 
    3. the value (v) of the property, and composes:

    add_property(s,p,v):
        g.add(s, hasPart, p) 
        g.add(p, hasValue, v)
    
    Another utility is to create an individual (instance) of certain type providing hte name (IRI) and the type class: 

    s= create_class(name:URIref, type: Class)
#Since this is a demo, we make our own creator, publisher, ...
random_creator = lambda: random.choice(["Amit Bhave", "Silvia Chiacchiera", "Bjorn Tore", "Owain Baynon", "Adham Hashibon"])  # these will be instances later of a User/Dataproider etc. 
random_publisher = lambda: random.choice(["CMCL", "FRAUNHOFER", "SINTEF", "BOSCH", "SIEMENS", "Nature Scientific Data", "MaterialsProject.prg"])  # these will be instances later of a User/Dataproider etc. 
random_keywords = lambda k: random.sample(s.split('\n'), random.randint(3, 6))

Let us use EuroSciVoc as True Semantic keywords!¶

and integrate with MIO+domeES ontology!¶

  • Load the EuroSciVoc ontology (mostly individuals, but with clear hierarchy)
  • Use SPARQL to pick all the concepts that are relevant for engineering and technology
  • for the demo: Make a function to select randomly 1 to 5 such semantic keywords, and add it to the dataset.

Note we add the entire keywords directly, i.e. we reuse it as is, with all supported languages etc.¶

This is probably an overkill but shows how we can attain complete practical and real compliance, and in fact use of European Infrastrcutre and investments.¶

esvoc = SimpleNamespace()
esvoc.g = Graph()
esvoc.desc = "the EuroSciVoc"
esvoc.path = "/Users/adham/dev/dome/Ontology-matters/external/EuroSciVoc-skos-ap-eu_1.3.ttl" # Once we find and end point, we can get this from teh net directly. 
esvoc.g.parse(esvoc.path)
# SPARQL query to choose all elements narrower than engineering and technology. 
q="""
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?narrowerConcept ?narrowerLabel 
WHERE {
    ?narrowerConcept skos:broader+ <http://data.europa.eu/8mn/euroscivoc/64605fff-1946-4fd4-b021-e2e83b71dcac> .
    ?narrowerConcept skos:prefLabel ?narrowerLabel .
        FILTER(LANGMATCHES(LANG(?narrowerLabel), "en"))
}
"""
# Noe the UUID may change between versions,  need to confirm! 
# run the query 
esvoc.r = esvoc.g.query(q)
#for i in esvoc.r:
#    print(i)
printH(f" We find {len(esvoc.r)} semantic keywords relevant for technology and engineering")
 We find 208 semantic keywords relevant for technology and engineering:
=======================================================================
esvoc.r_formated = [{'IRI': str(row.narrowerConcept), 'Label': str(row.narrowerLabel)} for row in esvoc.r]
esvoc.random = lambda r: random.sample([[r_['IRI'], r_['Label']] for r_ in r], random.randint(2, 6))
for i in range(3):
    print(esvoc.random(esvoc.r_formated))
[['http://data.europa.eu/8mn/euroscivoc/a039a9e8-4380-4e34-8ee5-b54465ca8fe6', 'water supply systems'], ['http://data.europa.eu/8mn/euroscivoc/6ec77859-f069-4eb2-9d70-3021ba5b325a', 'cognitive robots'], ['http://data.europa.eu/8mn/euroscivoc/969ab3ad-46f6-4637-a09b-92670ed60152', 'geotechnics'], ['http://data.europa.eu/8mn/euroscivoc/06109c22-82cc-4ba3-a0cd-22e516f18f66', 'structural health monitoring']]
[['http://data.europa.eu/8mn/euroscivoc/17e1c13a-0c3d-45ed-ac46-30fa3e7e2bf5', 'recycling'], ['http://data.europa.eu/8mn/euroscivoc/db293df2-83b1-46fe-b4f1-c5ffb03191e9', 'graphene']]
[['http://data.europa.eu/8mn/euroscivoc/26770c2b-64ce-4611-896f-cdefb4893317', 'civil engineering'], ['http://data.europa.eu/8mn/euroscivoc/cc4c298e-7c41-46b4-ac6c-6a2b71d476c5', 'data networks'], ['http://data.europa.eu/8mn/euroscivoc/6b4f284b-6a4b-466d-a600-812ac17321e6', 'bioplastics']]
for i in range(1, num_data_sets + 1):

    cuds.ds = URIRef(f"{domeES}DS_{i}")
    cuds.g.add((cuds.ds, RDF.type, domeES.data_set))
    
    # Add the required DOME 4.0 Data Set Ontology attributes
    # These are cuds.add(spo triplet)
    # cuds.uri = URIRef(f"http://materialsproject.org/data/calc_{i}")

    mpid=generate_random_materialproject_id()
    #uri = URIRef("https://next-gen.materialsproject.org/materials/mp-19149")
    uri=URIRef(f"https://next-gen.materialsproject.org/materials/{mpid}")
    cuds.g.add( (uri, RDF.type, domeES.URI) ) 
    cuds.g.add((cuds.ds, domeES.hasPart, uri))
    
    printH(f"this is a DOME 4.0 Data Set: {cuds.ds}")
    printH(f"this Data Set point to: {uri}")

    wp = URIRef("https://next-gen.materialsproject.org/")
    cuds.g.add( (wp, RDF.type, domeES.web_platform) ) 
    cuds.g.add((cuds.ds, domeES.hasPart, wp))

    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.issued_date) )    
    the_date=Literal(random_date_time())
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_date) ) 

    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.description) )    
    the_value=Literal("This is a description that will change later")
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_value) )

    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.data_creator) )    
    the_value=Literal(random_creator())
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_value) )

    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.license) )    
    the_value=Literal("CC-BY 4.0")
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_value) )


    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.data_publisher) )    
    the_value=Literal(random_publisher())
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_value) )

    dc = URIRef(f"{domeES}/{generate_uuid()}")
    cuds.g.add( (dc, RDF.type, domeES.title) )    
    the_value=Literal("this is a title placeholder")
    cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
    cuds.g.add( (dc, mioNS.hasValue, the_value) )


    # get some semantic EUROSCIVOC keywords for demo 
    ks=esvoc.random(esvoc.r_formated)
    for k in ks:
        print(k[1])
        dc = URIRef(k[0])
        cuds.g.add( (dc, RDF.type, domeES.semantic_keyword) )    
        cuds.g.add( (dc, RDFS.label, Literal(k[1]) ))    
        cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
        
   # g.add((data_set_uri, mio.hasPart, domeES.syntactic_keyword))
    
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_1:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-123:
===============================================================================
fermentation
composites
renewable energy
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_2:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-22:
==============================================================================
naval engineering
bioleaching
nuclear waste management
separation technologies
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_3:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-14:
==============================================================================
mining and mineral processing
airport engineering
additive manufacturing
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_4:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-77:
==============================================================================
electric power distribution
smart sensors
reverse osmosis
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_5:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-96:
==============================================================================
structural health monitoring
swarm robotics
nanophotonics
crystals
carbon capture engineering
diagnostic technologies
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_6:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-57:
==============================================================================
other engineering and technologies
drinking water treatment processes
ocean engineering
vehicle engineering
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_7:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-14:
==============================================================================
bluetooth
liquid crystals
laboratory samples analysis
computer hardware
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_8:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-171:
===============================================================================
woodworking
railroad engineering
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_9:
==========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-183:
===============================================================================
fiber-optic network
magnetic resonance imaging
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_10:
===========================================================================
this Data Set point to: https://next-gen.materialsproject.org/materials/mp-41:
==============================================================================
water supply systems
control systems
mobile network

Any data set (given as a IRI in general) can be a DOME 4.0 Data Set, this is simply achieved with the following line:¶

g.add((someURI, RDF.type, domeES.data_set))

vis(cuds.g+dome.g+mio)
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.607561 to fit

No description has been provided for this image
gc=cuds.g+dome.g+mio
ovis = OntoVis(gc)
vis(ovis.zoom_in(URIRef("http://dome40.eu/semantics/dome4.0_core#DS_2"), 3))
No description has been provided for this image
inspect_iri=URIRef("http://dome40.eu/semantics/dome4.0_core#DS_2")
q="""
SELECT ?predicate ?object
WHERE {
    <http://dome40.eu/semantics/dome4.0_core#DS_2> ?predicate ?object .
}
"""
DS99 = Graph()
r=gc.query(q)
for i in r:
    DS99.add((inspect_iri, i.predicate, i.object))
    q2 = f"""
    SELECT ?predicate ?object
    WHERE {{
        <{i.object}> ?predicate ?object .
    }}
    """
    r2 = gc.query(q2)
    for j in r2:
        DS99.add((j.object, j.predicate, j.object))
        print(j.object, j.predicate, j.object)
bioleaching http://www.w3.org/2000/01/rdf-schema#label bioleaching
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword
nuclear waste management http://www.w3.org/2000/01/rdf-schema#label nuclear waste management
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword
http://dome40.eu/semantics/dome4.0_core#title http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#title
this is a title placeholder http://www.ddmd.io/mio/hasValue this is a title placeholder
CMCL http://www.ddmd.io/mio/hasValue CMCL
http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_publisher
http://dome40.eu/semantics/dome4.0_core#license http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#license
CC-BY 4.0 http://www.ddmd.io/mio/hasValue CC-BY 4.0
This is a description that will change later http://www.ddmd.io/mio/hasValue This is a description that will change later
http://dome40.eu/semantics/dome4.0_core#description http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#description
2025-01-08T12:08:21.038014 http://www.ddmd.io/mio/hasValue 2025-01-08T12:08:21.038014
http://dome40.eu/semantics/dome4.0_core#issued_date http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#issued_date
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword
naval engineering http://www.w3.org/2000/01/rdf-schema#label naval engineering
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword
separation technologies http://www.w3.org/2000/01/rdf-schema#label separation technologies
http://dome40.eu/semantics/dome4.0_core#web_platform http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#web_platform
http://dome40.eu/semantics/dome4.0_core#data_creator http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_creator
Silvia Chiacchiera http://www.ddmd.io/mio/hasValue Silvia Chiacchiera
http://dome40.eu/semantics/dome4.0_core#URI http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#URI
http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_publisher
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#semantic_keyword
http://dome40.eu/semantics/dome4.0_core#description http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#description
http://dome40.eu/semantics/dome4.0_core#title http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#title
http://dome40.eu/semantics/dome4.0_core#syntactic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#syntactic_keyword
http://dome40.eu/semantics/dome4.0_core#license http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#license
http://dome40.eu/semantics/dome4.0_core#data_creator http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_creator
http://dome40.eu/semantics/dome4.0_core#web_platform http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#web_platform
http://dome40.eu/semantics/dome4.0_core#URI http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#URI
http://dome40.eu/semantics/dome4.0_core#name http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#name
http://dome40.eu/semantics/dome4.0_core#issued_date http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#issued_date
Dome Data Set http://www.w3.org/2000/01/rdf-schema#label Dome Data Set
http://www.w3.org/2002/07/owl#Class http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class
A dome specific representation of a Semantic Data Set  http://www.w3.org/2000/01/rdf-schema#comment A dome specific representation of a Semantic Data Set 
http://www.ddmd.io/mio/SDS http://www.w3.org/2000/01/rdf-schema#subClassOf http://www.ddmd.io/mio/SDS
for s, p, o in DS99:
    print(s, p, o)
this is a title placeholder http://www.ddmd.io/mio/hasValue this is a title placeholder
2025-01-08T12:08:21.038014 http://www.ddmd.io/mio/hasValue 2025-01-08T12:08:21.038014
http://www.ddmd.io/mio/SDS http://www.w3.org/2000/01/rdf-schema#subClassOf http://www.ddmd.io/mio/SDS
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart https://next-gen.materialsproject.org/materials/mp-22
nuclear waste management http://www.w3.org/2000/01/rdf-schema#label nuclear waste management
http://dome40.eu/semantics/dome4.0_core#web_platform http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#web_platform
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/7b002931-b33d-4f72-87db-4ae7db02e938
http://dome40.eu/semantics/dome4.0_core#issued_date http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#issued_date
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/5ae7bd70-d708-4d9c-b090-083a42d44632
http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_publisher
This is a description that will change later http://www.ddmd.io/mio/hasValue This is a description that will change later
bioleaching http://www.w3.org/2000/01/rdf-schema#label bioleaching
CC-BY 4.0 http://www.ddmd.io/mio/hasValue CC-BY 4.0
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/651fb7c0-6a5b-487e-b4ed-a6e8633cc820
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/971f78a7-0a4a-4c42-898a-2dba132550ad
http://dome40.eu/semantics/dome4.0_core#URI http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#URI
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/f6951c79-0493-427a-a82f-0cba8f550dce
http://dome40.eu/semantics/dome4.0_core#title http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#title
http://dome40.eu/semantics/dome4.0_core#description http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#description
naval engineering http://www.w3.org/2000/01/rdf-schema#label naval engineering
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#semantic_keyword
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/e017c36f-dfb5-4310-be7c-340a0a9ce178
http://dome40.eu/semantics/dome4.0_core#data_creator http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_creator
http://dome40.eu/semantics/dome4.0_core#DS_2 http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_set
http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_publisher
http://dome40.eu/semantics/dome4.0_core#name http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#name
CMCL http://www.ddmd.io/mio/hasValue CMCL
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/4d3e0b8f-ce04-475e-933f-a82f26f1086f
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart https://next-gen.materialsproject.org/
separation technologies http://www.w3.org/2000/01/rdf-schema#label separation technologies
http://dome40.eu/semantics/dome4.0_core#license http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#license
http://dome40.eu/semantics/dome4.0_core#description http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#description
http://dome40.eu/semantics/dome4.0_core#title http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#title
http://dome40.eu/semantics/dome4.0_core#syntactic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#syntactic_keyword
A dome specific representation of a Semantic Data Set  http://www.w3.org/2000/01/rdf-schema#comment A dome specific representation of a Semantic Data Set 
http://dome40.eu/semantics/dome4.0_core#URI http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#URI
http://dome40.eu/semantics/dome4.0_core#data_creator http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_creator
Dome Data Set http://www.w3.org/2000/01/rdf-schema#label Dome Data Set
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/6f391d1a-52de-47ca-8c4d-cbf3848ab542
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/34717bf5-c113-4044-8aa0-a54f29f887eb
http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/6e37587a-683b-4395-8bb9-3f3dcebc5ce7
http://www.w3.org/2002/07/owl#Class http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class
http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword
http://dome40.eu/semantics/dome4.0_core#license http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#license
http://dome40.eu/semantics/dome4.0_core#web_platform http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#web_platform
http://dome40.eu/semantics/dome4.0_core#issued_date http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#issued_date
Silvia Chiacchiera http://www.ddmd.io/mio/hasValue Silvia Chiacchiera
vis(DS99)
No description has been provided for this image
q = """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX domeES: <http://dome40.eu/semantics/dome4.0_core#> 

    SELECT ?s ?p ?o ?oLabel
    WHERE {
        ?s ?p ?o .
        ?o rdfs:label ?oLabel .    
        ?o rdfs:label "medical engineering" .
        }
"""
r=gc.query(q)
for i in r:
    print(i)